/* vim: set sw=8 ts=8 sts=8 expandtab: */
#ifndef CMAID_HASH_H
#define CMAID_HASH_H

/**
 * @addtogroup Cmaid_Hash
 * @{
 */
EAPI Cmaid_Set          *cmaid_hash_set_new(const Cmaid_Value *v);
EAPI Cmaid_Map          *cmaid_hash_map_new(const Cmaid_Value *key,
                                        const Cmaid_Value *value);
EAPI Cmaid_Cache        *cmaid_hash_cache_new(const Cmaid_Value *v);

/*
 * The interface structures, use them on your own risk, or even better do not
 * use them at all
 */
EAPI extern const Cmaid_Set_Interface          cmaid_hash_set_if;
EAPI extern const Cmaid_Map_Interface          cmaid_hash_map_if;
EAPI extern const Cmaid_Cache_Interface        cmaid_hash_cache_if;
EAPI extern const Cmaid_Iter_Interface         cmaid_hash_key_iter_if;
EAPI extern const Cmaid_Iter_Interface         cmaid_hash_value_iter_if;

/**
 * @}
 */

#endif
